home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh8x / sh87b.d64 / demo-source _seq < prev    next >
Encoding:
Text File  |  1995-03-30  |  9.9 KB  |  334 lines

  1.          *= $4000 ;STARTADRESSE $4000
  2.  
  3. ;---------------------------------------
  4. ;--------VARIABLEN SETZEN---------------
  5. ;---------------------------------------
  6.  
  7. IRQLOW   = $0314  ;IRQ-VEKTOR LOWBYTE
  8. IRQHIG   = $0315  ;           HIGHBYTE
  9. OLDIRQ   = $EA31  ;ALTE IRQ-ROUTINE
  10.  
  11. INITMUSIC = $1000 ;MUSIK INITIALISIEREN
  12. PLAYMUSIC = $1003 ;ABSPIELEN
  13.  
  14. FLASHCOUNT = $FB  ;ZAEHLER 1 UND 2
  15. FLASHCOUNT2 = $FC ;FUER FLASH-EFFEKTE
  16.  
  17. SCRHELP  = $03FB  ;HILFSREGISTER F.
  18. SCROLLREG = $D016 ;SCROLLREGISTER
  19.  
  20. CHARSET  = $D018  ;ZEICHENS. DEFINIEREN
  21. RASTER   = $D012  ;RASTERSTRAHL-POS
  22. YSCROLL  = $D011  ;Y-SCROLL-REGISTER
  23. IMR      = $D01A  ;IRQ MASK REGISTER
  24.  
  25. ;---------------------------------------
  26. ;--------IRQ VORBEREITEN----------------
  27. ;---------------------------------------
  28.  
  29.          SEI         ;IRQ SPERREN
  30.  
  31.          JSR INIT    ;INITIALISIEREN
  32.  
  33.          LDA #<START ;LOWBYTE LADEN
  34.          STA IRQLOW  ;UND SPEICHERN
  35.          LDA #>START ;HIGHBYTE LADEN
  36.          STA IRQHIG  ;UND SPEICHERN
  37.  
  38.          LDA YSCROLL ;Y-SCROLL-REGISTER
  39.          AND #$7F    ;RICHTIG
  40.          STA YSCROLL ;SETZEN
  41.  
  42.          LDA #$7F    ;TIMER
  43.          STA $DC0D   ;SETZEN
  44.  
  45.          LDA #$01    ;RASTER-IRQ
  46.          STA IMR     ;FESTLEGEN
  47.  
  48.          LDA #$00    ;MUSIK
  49.          JSR INITMUSIC;INITIALISIEREN
  50.          CLI         ;IRQ FREIGEBEN
  51.          JMP *       ;ENDLOS-SCHLEIFE
  52.  
  53. ;---------------------------------------
  54. ;--------IRQ-HAUPTSCHLEIFE--------------
  55. ;---------------------------------------
  56.  
  57. START    LDA YSCROLL   ;WARTEN BIS
  58.          BPL START     ;UNTERER RAND
  59.                        ;ERREICHT
  60.          LDA #$1A      ;ZEICHENSATZ
  61.          STA CHARSET   ;UMSCHALTEN
  62.          LDA #$C8      ;SCROLLREG
  63.          STA SCROLLREG ;SETZEN
  64.  
  65.          JSR PLAYMUSIC ;MUSIK SPIELEN
  66.  
  67.          LDA #$38      ;AUF RASTERLINE
  68. ST1      CMP RASTER    ;$38
  69.          BNE ST1       ;WARTEN
  70.  
  71.          JSR RASTERSHOW;RASTER-FARBEN
  72.          JSR SCROLL    ;FARBEN SCROLLEN
  73.  
  74.          LDA #$8C      ;AUF RASTERLINE
  75. ST2      CMP RASTER    ;$8C
  76.          BNE ST2       ;WARTEN
  77.  
  78.          LDA #$1C      ;KLEINEN ZEICHEN
  79.          STA CHARSET   ;SATZ EIN
  80.  
  81.          JSR FLASH     ;3 LINIEN FLASHEN
  82.  
  83.          LDA #$B8      ;AUF RASTERLINE
  84. ST3      CMP RASTER    ;$B8
  85.          BNE ST3       ;WARTEN
  86.  
  87.          JSR CHARSCROLL;SCROLLROUTINE
  88.          JSR CHARFLASH ;FARBSCROLLING
  89.  
  90.          JMP OLDIRQ    ;ALTER IRQ
  91.  
  92. ;---------------------------------------
  93. ;--------SUB-ROUTINEN-------------------
  94. ;---------------------------------------
  95.  
  96. FLASH    LDY #$77      ;3LINES=$77 CHARS
  97.          LDX FLASHCOUNT;COUNTER HOLEN
  98.          LDA FLASHTAB,X;UND BYTE
  99. FLASH1   STA $DA08,Y   ;SCHREIBEN SOLANG
  100.          DEY           ;BIS ALLE DREI
  101.          BPL FLASH1    ;ZEILEN FERTIG
  102.          INC FLASHCOUNT;COUNTER+1
  103.          CPX #$18      ;SCHON 18 WERTE?
  104.          BNE FLASHEND  ;NEIN DANN ENDE
  105.          LDA #$00      ;JA DANN ZAEHLER
  106.          STA FLASHCOUNT;ZURUECKSETZEN
  107. FLASHEND RTS           ;ENDE
  108.  
  109. FLASHTAB ;FARBWERTE
  110.          .BYTE $02,$02,$02,$0A,$0A,$0A
  111.          .BYTE $07,$07,$07,$0F,$0F,$0F
  112.          .BYTE $07,$07,$07,$0A,$0A,$0A
  113.          .BYTE $02,$02,$02,$00,$00,$00
  114.  
  115. ;---------------------------------------
  116.  
  117. CHARFLASH
  118.          LDY $DB20  ;FARBRAM VON
  119.          LDX #$00   ;$DB20 BIS
  120. CHARFL1  LDA $DB21,X;$DB47
  121.          STA $DB20,X;ENDLOS
  122.          INX        ;ROTIEREN
  123.          CPX #$27   ;DAS Y-REG DIENT
  124.          BNE CHARFL1;ALS ZWISCHEN-
  125.          STY $DB47  ;SPEICHER
  126.          RTS        ;ENDE
  127.  
  128. FLASHTAB2 ;FARBTABELLE
  129.          .BYTE $06,$06,$06,$04,$04,$04
  130.          .BYTE $0E,$0E,$0E,$03,$03,$03
  131.          .BYTE $0F,$0F,$0F,$01,$01,$01
  132.          .BYTE $01,$01,$01,$0F,$0F,$0F
  133.          .BYTE $03,$03,$03,$0E,$0E,$0E
  134.          .BYTE $04,$04,$04,$06,$06,$06
  135.          .BYTE $00,$00,$00,$00
  136. TABEND2
  137. ;---------------------------------------
  138.  
  139. CHARSCROLL
  140.          LDX SCRHELP  ;REGISTER HOLEN
  141.          DEX          ;UND ZWEIMAL
  142.          DEX          ;DEKREMENTIEREN
  143.                       ;(SCROLLSPEED)
  144.          STX SCRHELP  ;IN HILFS & SCRREG
  145.          STX SCROLLREG;SCHREIBEN
  146.          CPX #$BF     ;SCHON UNTERLAUF?
  147.          BEQ HARDSCR  ;DANN HARDSCROLL
  148.          RTS          ;ENDE
  149.  
  150. HARDSCR  LDX #$C7     ;REGISTER
  151.          STX SCROLLREG;ZURUECK-
  152.          STX SCRHELP  ;SETZEN
  153.  
  154.          LDX #$00     ;BILDSCHIRMZEILE
  155. HARD1    LDA $0721,X  ;UM EINS
  156.          STA $0720,X  ;NACH
  157.          INX          ;LINKS
  158.          CPX #$27     ;ROTIEREN
  159.          BNE HARD1    ;
  160.  
  161. CHANGE   LDA TEXT     ;TEXTBYTE LADEN
  162.          CMP #$00     ;SCHON ABBRUCH?
  163.          BNE CONT     ;NEIN DANN CONT
  164.          LDA #<TEXT   ;LOWBYTE
  165.          STA CHANGE+1 ;SCHREIBEN
  166.          LDA #$20     ;UND AKKU AUF
  167.          STA $0747    ;LEERZEICHEN
  168.          RTS          ;ENDE
  169. CONT     STA $0747    ;ZEICHEN SCHREIBEN
  170.          INC CHANGE+1 ;CHANGE IM CODE
  171.                       ;UM EINS ADDIEREN
  172. SCREND   RTS          ;ENDE
  173.  
  174. TEXT     .TEXT "    "
  175.          .TEXT "            
  176.   "
  177.          .TEXT "       "
  178.          .TEXT "         "
  179.          .TEXT "      255"
  180.          .TEXT "            "
  181.          .TEXT "
  182.                "
  183.          .TEXT "        "
  184.          .TEXT "              "
  185.          .BYTE $00
  186.  
  187. ;---------------------------------------
  188.  
  189. RASTERSHOW
  190.          LDX #$00    ;ZAEHLER AUF $00
  191. COLOR1   LDA COLTAB,X;FARBWERT HOLEN
  192.          LDY WAITAB,X;WAIT-WERT HOLEN
  193. WAIT1    DEY         ;HERUNTERZAEHLEN
  194.          BNE WAIT1   ;UM DIE ZYKLEN
  195.                      ;AUSZUGLEICHEN
  196.          STA $D021   ;FARBE
  197.          STA $D021   ;SCHREIBEN
  198.          INX         ;ZAEHLER+1
  199.          CPX #$40    ;SCHON 40 FARBEN?
  200.          BNE COLOR1  ;NEIN DANN COLOR1
  201.          LDA #$00    ;JA DANN SCREEN
  202.          STA $D020   ;AUF SCHWARZ
  203.          STA $D021   ;SETZEN
  204.          RTS         ;ENDE
  205.  
  206. COLTAB
  207.          .BYTE $06,$04,$0E,$03,$07,$0F
  208.          .BYTE $01,$01,$0F,$07,$03,$0E
  209.          .BYTE $06,$04,$00,$00,$09,$02
  210.          .BYTE $0A,$07,$0F,$01,$01,$0F
  211.          .BYTE $07,$0A,$02,$09,$00,$00
  212.          .BYTE $09,$0B,$08,$0C,$0F,$07
  213.          .BYTE $01,$01,$0F,$0C,$08,$0B
  214.          .BYTE $09,$00,$00,$02,$0A,$07
  215.          .BYTE $0F,$01,$0B,$0C,$0F,$01
  216.          .BYTE $01,$0F,$0C,$0B,$01,$0F
  217.          .BYTE $07,$0A,$02,$00,$00
  218. COLEND
  219. WAITAB
  220.          .BYTE $09,$08,$08,$01,$08,$08
  221.          .BYTE $08,$08,$08,$08,$08,$01
  222.          .BYTE $08,$08,$08,$08,$08,$08
  223.          .BYTE $08,$01,$08,$08,$08,$08
  224.          .BYTE $08,$08,$08,$01,$08,$08
  225.          .BYTE $08,$08,$08,$08,$08,$01
  226.          .BYTE $08,$08,$08,$08,$08,$08
  227.          .BYTE $08,$01,$08,$08,$08,$08
  228.          .BYTE $08,$08,$08,$01,$08,$08
  229.          .BYTE $08,$08,$08,$08,$08,$01
  230.          .BYTE $08,$08,$08,$08,$08
  231.  
  232. ;---------------------------------------
  233.  
  234. SCROLL   LDY COLTAB    ;FARBTABELLE DER
  235.          LDX #$00      ;RASTERFARBEN
  236. SCR1     LDA COLTAB+1,X;UM EIN BYTE
  237.          STA COLTAB,X  ;NACH LINKS
  238.          INX           ;ROTIEREN.DADURCH
  239.          CPX #$40      ;ENTSTEHT EIN
  240.          BNE SCR1      ;FEINES
  241.          STY COLEND-1  ;RASTERSCROLLING
  242.          RTS           ;ENDE
  243.  
  244. ;---------------------------------------
  245.  
  246. INIT     LDA #$C7       ;HILFSREGISTER
  247.          STA SCRHELP    ;SETZEN
  248.  
  249.          LDA #$00       ;COUNTER
  250.          STA FLASHCOUNT ;INITIALISIEREN
  251.          STA FLASHCOUNT2;
  252.          STA $D020      ;SCREEN UND
  253.          STA $D021      ;FRAME SCHWARZ
  254.          LDA #$00       ;SCHWARZES
  255.          STA $0286      ;FARBRAM
  256.          JSR $E544      ;SCREEN LOESCHEN
  257.  
  258.          LDX #$00       ;"DEMO TEST
  259. INIT1    LDA SCREEN1,X  ; GROSSER
  260.          STA $0454,X    ; ZEICHENSATZ"
  261.          INX            ;AUF DEN
  262.          CPX #$EC       ;BILDSCHIRM
  263.          BNE INIT1      ;SCHREIBEN
  264.  
  265.          LDX #$77       ;"KLEINER
  266. INIT3    LDA SCREEN2,X  ; ZEICHENSATZ"
  267.          STA $0608,X    ;AUF DEN
  268.          DEX            ;BILDSCHIRM
  269.          BPL INIT3      ;SCHREIBEN
  270.  
  271.          LDX #$27       ;FARBTABELLE
  272. INIT4    LDA FLASHTAB2,X;IN COLOR-RAM
  273.          STA $DB20,X    ;SCHREIBEN
  274.          DEX            ;(FUER'S
  275.          BPL INIT4      ;FARBSCROLLING)
  276.  
  277.          LDA #$C7       ;SCROLLREGISTER
  278.          STA SCROLLREG  ;SETZEN
  279.          LDA #$1C       ;ZEICHENSATZ
  280.          STA CHARSET    ;ANSCHALTEN
  281.          RTS            ;ENDE
  282.  
  283. ;--"DEMO TEST GROSSER ZEICHENSATZ"------
  284. SCREEN1  .BYTE $20,$20,$20,$20,$20,$20
  285.          .BYTE $04,$44,$05,$45,$0D,$4D
  286.          .BYTE $0F,$4F,$2D,$14,$54,$05
  287.          .BYTE $45,$13,$53,$14,$54,$20
  288.          .BYTE $20,$20,$20,$20,$20,$20
  289.          .BYTE $20,$20,$20,$20,$20,$20
  290.          .BYTE $20,$20,$20,$20,$20,$20
  291.          .BYTE $20,$20,$20,$20,$84,$C4
  292.          .BYTE $85,$C5,$8D,$CD,$8F,$CF
  293.          .BYTE $AD,$94,$D4,$85,$C5,$93
  294.          .BYTE $D3,$94,$D4,$20,$20,$20
  295.          .BYTE $20,$20,$20,$20,$20,$20
  296.          .BYTE $20,$20,$20,$20,$20,$20
  297.          .BYTE $20,$20,$20,$20,$20,$20
  298.          .BYTE $20,$20,$20,$20,$20,$20
  299.          .BYTE $20,$20,$20,$20,$20,$20
  300.          .BYTE $20,$20,$20,$20,$20,$20
  301.          .BYTE $20,$20,$20,$20,$20,$20
  302.          .BYTE $20,$20,$20,$20,$20,$20
  303.          .BYTE $20,$20,$20,$20,$20,$20
  304.          .BYTE $20,$20,$20,$20,$20,$20
  305.          .BYTE $20,$20,$20,$20,$20,$20
  306.          .BYTE $20,$20,$20,$20,$20,$20
  307.          .BYTE $20,$20,$20,$20,$20,$20
  308.          .BYTE $20,$20,$20,$20,$20,$20
  309.          .BYTE $20,$20,$20,$20,$20,$20
  310.          .BYTE $20,$20,$07,$47,$12,$52
  311.          .BYTE $0F,$4F,$13,$53,$13,$53
  312.          .BYTE $05,$45,$12,$52,$20,$1A
  313.          .BYTE $5A,$05,$45,$09,$49,$03
  314.          .BYTE $43,$08,$48,$05,$45,$0E
  315.          .BYTE $4E,$13,$53,$01,$41,$14
  316.          .BYTE $54,$1A,$5A,$20,$20,$20
  317.          .BYTE $87,$C7,$92,$D2,$8F,$CF
  318.          .BYTE $93,$D3,$93,$D3,$85,$C5
  319.          .BYTE $92,$D2,$A0,$9A,$DA,$85
  320.          .BYTE $C5,$89,$C9,$83,$C3,$88
  321.          .BYTE $C8,$85,$C5,$8E,$CE,$93
  322.          .BYTE $D3,$81,$C1,$94,$D4,$9A
  323.          .BYTE $DA,$20,$20,$20,$20,$20
  324.          .BYTE $20,$20,$20,$20,$00
  325. ;---"KLEINER ZEICHENSATZ"---------------
  326. SCREEN2  .TEXT "             "
  327.          .TEXT "          "
  328.          .TEXT "             "
  329.          .TEXT "          "
  330.          .TEXT "             "
  331.          .TEXT "          "
  332. ;---------------------------------------
  333.  
  334.